package contract_request

import (
	"private-go-sdk/http"
	"private-go-sdk/model/common"
	"encoding/json"
)

type ContractPermissionRequest struct {
	// <ext>core:true;inner-type:json<UserInfoRequest></ext> 【个人用户】个人用户 【作用】 指定需查询文件操作权限的个人用户 【传参】 1、若用户不存在时，将会报错。 2、参数必传其一，传入多个参数时只按参数中最高优先级查询，优先级为用户id>联系方式>手机号>邮箱>成员编号>证件号>第三方业务系统用户id>登录账号。
	UserInfo string `json:"userInfo,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【电子签约文件id】电子签约文件id 【作用】 指定需查询操作权限的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	ContractId *int64 `json:"contractId,omitempty"`
	// <ext>core:true;format:string;deprecated:false</ext> 【第三方业务系统文件id】第三方业务系统文件id 【作用】 指定需查询操作权限的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizId string `json:"bizId,omitempty"`
	UserInfoObject *common.UserInfoRequest `json:"userInfoObject,omitempty"`
}
func (obj ContractPermissionRequest) GetUrl() string {
    return "/contract/permission"
}

func (obj ContractPermissionRequest) GetHttpParameter() *http.HttpParameter {
    parameter := http.NewGetHttpParameter()
    parameter.AddParam("contractId", obj.ContractId)
    parameter.AddParam("bizId", obj.BizId)
    if obj.UserInfoObject != nil {
       jsonBytes, _ := json.Marshal(obj.UserInfoObject)
       parameter.AddParam("userInfo", string(jsonBytes))
   } else {
       parameter.AddParam("userInfo", obj.UserInfo)
   }
    return parameter
}
